import qrcode
import os
from PIL import Image, ImageDraw, ImageFont

# 创建test_qr文件夹（如果不存在）
if not os.path.exists('test_qr'):
    os.makedirs('test_qr')

# 设置二维码参数
qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_L,
    box_size=10,
    border=4,
)

# 生成31个二维码
for i in range(1, 32):
    # 生成文件名（例如：01.png, 02.png, ...）
    filename = f"{i:02d}.png"
    
    # 设置二维码内容
    qr.clear()
    qr.add_data(f"Test QR Code {i}")
    qr.make(fit=True)
    
    # 创建二维码图片
    qr_image = qr.make_image(fill_color="black", back_color="white")
    qr_image = qr_image.convert('RGB')
    
    # 调整图片大小为424x424
    qr_image = qr_image.resize((424, 424))
    
    # 在二维码中心添加数字
    draw = ImageDraw.Draw(qr_image)
    # 使用默认字体
    font_size = 60
    try:
        font = ImageFont.truetype("arial.ttf", font_size)
    except:
        font = ImageFont.load_default()
    
    # 计算文字位置使其居中
    number_text = str(i)
    text_bbox = draw.textbbox((0, 0), number_text, font=font)
    text_width = text_bbox[2] - text_bbox[0]
    text_height = text_bbox[3] - text_bbox[1]
    
    x = (424 - text_width) // 2
    y = (424 - text_height) // 2
    
    # 添加白色背景和数字
    draw.rectangle([x-10, y-10, x+text_width+10, y+text_height+10], fill='white')
    draw.text((x, y), number_text, font=font, fill='black')
    
    # 保存图片
    qr_image.save(os.path.join('test_qr', filename), dpi=(96, 96))

print("二维码生成完成！") 